package editorsvg.editor.documento;

import editorsvg.editor.atributos.AtrString;
import editorsvg.propiedades.GrupoPropiedades;
import editorsvg.propiedades.PropiedadTextoMultilinea;

/**
 *
 * @author Jorge Berjano
 */
public class ElementoEstilo extends ElementoSVG {
    private AtrString hojaEstilo = new AtrString();
    private static GrupoPropiedades propiedadesEstilo;
    
    @Override
    public String getNombreTag() {
        return PrototipoElemento.style.name();
    }
    
    @Override
    protected void poblarPropiedades() {
        super.poblarPropiedades();
        agregarPropiedades(getPropiedadesEstilo());
        
    }

    @Override
    protected void asignarPropietariosPropiedades() {
        super.asignarPropietariosPropiedades();
        getPropiedadesEstilo().setPropietario(this);       
    }
    
    public static GrupoPropiedades getPropiedadesEstilo() {
        if (propiedadesEstilo == null) {
            propiedadesEstilo = new GrupoPropiedades("css");
            propiedadesEstilo.agregarPropiedad(new PropiedadTextoMultilinea("hojaEstilo", null));
        }

        return propiedadesEstilo;
    } 

    @Override
    public void actualizar() {
    }
    
    public final AtrString hojaEstilo() {
        return hojaEstilo;
    }
    
        /**
     * Agrega un fragmento de texto al elemento. Por defecto no hace nada.
     */
    @Override
    public void agregarTexto(String texto) {
        try {
            if (hojaEstilo.getTexto() == null) {
                hojaEstilo.setTexto(texto);
            } else {
                hojaEstilo.setTexto(hojaEstilo.getTexto() + texto);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
